using System;
using System.Collections.Generic;

namespace OracleInternal.Sharding
{
	internal class RangeMapValue<K, V> where K : IComparable<K>
	{
		internal K KeyFloor
		{
			get;
			set;
		}

		internal K KeyCeiling
		{
			get;
			set;
		}

		internal List<RangeMap<K, V>> NestedRanges
		{
			get;
			set;
		}

		internal List<V> Values
		{
			get;
			set;
		}

		internal RangeMapValue(K keyFloor, K keyCeiling, List<V> values)
			: this(keyFloor, keyCeiling, new List<RangeMap<K, V>>(), values)
		{
		}

		internal RangeMapValue(K keyFloor, K keyCeiling, List<RangeMap<K, V>> nestedRanges, List<V> values)
		{
			KeyFloor = keyFloor;
			KeyCeiling = keyCeiling;
			NestedRanges = nestedRanges;
			Values = values;
		}
	}
}
